import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-06-23
 * Time: 23:24
 */

public   class Solution {
    public boolean closeStrings(String word1, String word2) {
        int len1 = word1.length();
        int len2 = word2.length();
        // 长度不相同, 直接 false
        if (len1 != len2) {
            return false;
        }
        int[] arr1 = new int[26];
        int[] arr2 = new int[26];
        // 记录每个字母出现的次数
        for (int i = 0;i < len1;i++) {
            arr1[word1.charAt(i) - 'a']++;
            arr2[word2.charAt(i) - 'a']++;
        }
        for (int i = 0;i < 26;i++) {
            // 根据转换的规则
            // 如果两个字符串中存在不一致的字符, 那么就不相似
            if (arr1[i] > 0 && arr2[i] == 0 || arr1[i] == 0 && arr2[i] > 0) {
                return false;
            }
        }
        // 如果包含的字母都相同, 那么只要出现的个数能对应上就行
        // 不要求每个字母出现的次数对应相同
        Arrays.sort(arr1);
        Arrays.sort(arr2);
        return Arrays.equals(arr1, arr2);
    }
}
